PowerFrax is a benchmarking application that generates fractals from the classic Mandelbrot set. The fractal patterns that are shown on the screen are the result of intense floating point calculations performed for each pixel in the image. The length of time required to perform these calculations is a good measure of the capabilities of the processor or processors performing them. PowerFrax has a built-in timer that allows comparisons to be easily made.
Using PowerFrax
PowerFrax has a number of features that make exploring fractals easy and fun.
When you first launch PowerFrax it will open a new window and display the Mandelbrot set. To explore the fractal select this tool in the Info window:
Now click and drag out a selection within the fractal to create a new fractal zoomed in on the area selected. This is the principle way to explore the fractal. To make a square selection hold down the shift key.
Fig.1 The area selected is magnified into a new window
Clicking and dragging will work in any fractal window.
The PowerFrax Tools
This section describes the function of the PowerFrax tools.
Drag And Drop.
This tool will let you drag a copy of the current window to any application that will accept a dropped picture, e.g. the Scrapbook or the Finder.
Crop.
As described above, this tool will let you magnify a selection from an existing fractal into a new window.
Magnify.
This tool will let you magnify a fractal. Holding the option key down will let you reduce the fractal.
Shift.
This tool will let you shift the fractal. Only the exposed areas will be recalculated. The generation time is not applicable and will not be displayed for a shifted fractal.
Sample.
This tool is only available for Julia Set fractals. It is described below.
The PowerFrax Menus
This section describes the options available in the PowerFrax menus.
The File Menu
New
Creates a new Mandelbrot set or one of a number of different types of documents if plug-ins are installed.
Open…
Opens a previously saved fractal.
Cycle…
All previously saved fractals in the selected folder will be played back repeatedly until 'Stop Cycling' is selected from the File menu.
Close
Closes the current fractal. Hold down the option key to close all the fractals.
Save
Saves the current fractal. Note that PowerFrax does not prompt the user to save changed fractals so be sure to save fractals that you like before closing them or quitting PowerFrax.
Save As…
Same as save except that the user will be prompted to name the fractal.
Page Setup…
Sets up printing parameters using the standard Page Setup dialog.
Print
Prints the current fractal.
Quit
Quits PowerFrax.
The Edit Menu
Copy
Copies the current fractal to the clipboard.
Default Fractal…
Changes the fractal that will be generated when 'New' is selected. This option can also be used to restore the original default fractal.
The Control Menu
Restart
Restarts the current fractal from the beginning.
Repeat
Restarts the current fractal from the beginning. Each time it finishes it will be restarted again after a one second delay.
Exact Colors
Uses the precise color set associated with the fractal. This option is not needed and is not available when the monitor is in millions of color mode. When this option is used, colors in windows other than the current fractal window may not appear correctly. Monitors with at least 256 colors capability are required for this option to work well.
Animate Colors
Centers the current fractal on the monitor, grays out the rest of the screen then cycles through all the available colors in the color set associated with the fractal. Use the command key to reverse the direction of the animation. The option key freezes the animation temporarily. The shift key will slow the animation down. Click the mouse or push any other key to end the animation. Note that on multiple monitor systems the fractal will not be centered.
The Window Menu
Hide Info
Hides the Info window.
Window Name
Selects the named window.
The Multiprocessing Menu
Use 'n' Processors
Selects the number of processors to be used to regenerate all open fractals and to generate all subsequent fractals. This menu is only available on multiprocessing systems.
If you type command-'d', the contents of the multiprocessing menu will change. It will provide an option to specify the number of tasks to generate fractals with. The number of tasks that can be created is restricted to 100. Typing command-'d' again will restore the menu to its original state.
PowerFrax Plug-ins
PowerFrax supports plug-ins that can generate documents with content other than the Mandelbrot set. The available plug-ins are Julia Sets and 3D Projection. They are described after the Mandelbrot section below. Plug-ins appear in a hierchical New menu when they are installed.
Mandelbrot
The Mandelbrot set is named after Benoit Mandelbrot, a mathematician who did considerable research into fractal systems. It is based on the iterative application of the function f(z) = z*z + c, where z is the result of the previous application and c is a constant point in the complex plane.
To generate a fractal the function f(z) is applied iteratively for each pixel in the image. For each pixel the initial value of z is set to 0 and the value of c is set to the pixel's corresponding point in the complex plane. The function f(z) is applied repeatedly until the magnitude of f(z) exceeds the escape radius or until the number of iterations equals 255. The number of iterations performed determines the color of the pixel.
When a Mandelbrot window is active the Info window appears as follows:
Fig. 2 The Mandelbrot Info Window
The PowerFrax Info window describes the current fractal. White text fields in the Info window can be edited.
The Center fields are the center of the current fractal in the complex plane.
The Step field is the degree of seperation of each pixel from its immediate neighbors in the complex plane.
The Escape Radius field is used to determine when to stop performing iterations.
The Size fields are the the pixel dimensions of the fractal. Editing these two fields is the only way to make the fractal bigger or smaller.
The Colors menu allows the user to recolor the fractal with any one of a variety of different color sets.
The Generation Time display shows how long it took to calculate the current fractal. Only the time required to perform the calculations is measured -nothing else.
The Cursor display shows the position in the complex plane of the pixel under the cursor. If the cursor is not over a fractal then this display will be blank.
Julia Sets
There is one Julia set for every point in the Mandelbrot set. The Info window content for a Julia Set is very similar to that for a Mandelbrot set.
There are two additional fields defining the point lambda in the Mandelbrot set to which the Julia set corresponds.
There is also a sample tool which will allow lambda to be set quickly by clicking on a point in any open Mandelbrot window. The sample tool may be activated at any time by holding down the option key. Try holding the mouse button down and moving the sample tool around inside a Mandelbrot window. The results can be very impressive on a fast machine.
3D Projection
This plugin does not generate a fractal. Instead, it creates a three-dimensional projection of an existing fractal. This plug-in will not be available unless QuickDraw 3D is installed.
The Info window for 3D projections is significantly different from the other two types of plug-ins:
Fig. 3 The 3D Projection Info Window
The Projection field states which fractal the projection was derived from. Note that the fractal from which the projection was derived does not have to be left open.
The Tessalation field defines how many pixels in the corresponding base fractal are traversed before a new vertex in the projection is defined. The smaller this number the more polygons there will be in the projection.
Maximum Height defines how 'tall' the projection will be. Making this number negative will turn the projection into valleys instead of mountains.
Rotation Speed defines the angle in degrees between each subsequent frame displayed in a 3D projection window. Setting this number to 0 will make the projection stationary.
Polygon Count states how many polygons are in the 3D projection.
Frame Rate states how many frames per second are being displayed.
The Size fields are the pixel dimensions of the projection document.
The Drag And Drop tool is the only tool available for 3D projections.
The 3D Projection plug-in also installs a menu which contains the following options:
The 3D Projection Menu
Wire Frame
Renders the projection as a wire frame.
Vertex Shading
Renders the projection using vertex interpolation.